import http from './http'
import type { UserInfo } from '@/utils/auth'
import type { LoggerItem } from './types'
const prefix = '/easy'

/**
 * 用户列表
 * @param keyword 关键词
 * @param pageSize 每页数量
 * @param pageNum 页码
 * @returns DataListType<UserInfo[]>
 */
export const _userList = (params = {}) =>
  http.get<DataListType<UserInfo>>(`${prefix}/user/list`, {
    params
  })

/**
 * 添加新用户
 * @param data 包含用户信息的对象，默认为空对象
 */
export const _addUser = (data = {}) => http.post(`${prefix}/user/create`, data)

/**
 * 编辑用户信息
 * @param data 包含更新后用户信息的对象，默认为空对象
 */
export const _updateUser = data => http.patch(`${prefix}/user/update`, data)

/**
 * 删除指定ID的用户
 * @param id 需要删除的用户的ID
 */
export const _deleteUser = (id: number) =>
  http.delete(`${prefix}/user/delete`, { params: { id } })

/**
 * 重置指定ID的用户密码
 * @param id 需要重置的用户的ID
 */
export const _resetPassword = (id: number) =>
  http.post(`${prefix}/user/resetPassword/${id}`, {})

/**
 * @description 用户绑定角色
 * @param userId 用户ID
 * @param roleId 角色ID
 */
export const _bindRole = (data = {}) =>
  http.post(`${prefix}/user/bindRole`, data)

/**
 * 查看日志记录
 * @param params 包含查询参数的对象，默认为空对象
 */
export const _queryLogger = (params = {}) =>
  http.get<DataListType<LoggerItem>>(`${prefix}/logger`, {
    params
  })
